package 双指针法;

import com.alibaba.fastjson.JSON;

public class NC22合并两个有序数组 {

    /**
     * 给出两个有序的整数数组 和 ，请将数组 合并到数组 中，变成一个有序的数组
     * 注意：
     * 可以假设 数组有足够的空间存放 数组的元素， 和 中初始的元素数目分别为 和
     */

    //不使用额外空间 指针从后往前移动
    public void merge(int A[], int m, int B[], int n) {

        if(A.length==0){
            A=B;
        }

        int aIndex=m-1;
        int bIndex=n-1;
        int index=A.length-1;

        while (index>=0&&bIndex>=0){
            int aNum=A[aIndex];
            int bNum=B[bIndex];

            if(aNum>bNum){
                A[index]=aNum;
                aIndex--;
            }else{
                A[index]=bNum;
                bIndex--;
            }
            index--;
        }

    }

    public static void main(String[] args) {
        NC22合并两个有序数组 n=new NC22合并两个有序数组();
        int[] A={1,3,5,7,9,11,0,0,0,0};
        int[] B={2,4,6,8};
        n.merge(A,6,B,4);
        System.out.println(JSON.toJSONString(A));
    }

}
